a 是当前元素的值。如果 a 是 0，增加 count 以记录当前窗口内 0 的数量。
当 count 超过 k（即窗口内的 0 数量超过允许的最大值 k）时，移动左边界 i，直到 count 不再大于 k：
如果窗口左端的元素是 0，则减少 count。i++ 移动左边界。
更新 res 为当前窗口的最大长度 (j - i + 1)，其中 j - i + 1 是当前窗口的长度。

class Solution {
public:
    int longestOnes(vector<int>& nums, int k) {
        int res = 0;     //存储满足条件的最长子数组长度
        int count = 0;   //当前窗口0的个数
        int i = 0, j = 0;  //i是左边界，j是右边界     
        for(j = 0; j < nums.size(); j++)
        {
            int a = nums[j];   //记录当前元素
            if(a == 0)
            {
                count++;
                while(count > k)
                {
                    if(nums[i] == 0)
                        count--;
                    i++;
                }
            }
            res = max(res, j - i + 1);
        }
        return res;
    }
};